package com.ruoyi.task.domain;

import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 任务对象 sys_task
 * 
 * @author yjf
 * @date 2022-06-30
 */
public class SysTask extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 任务ID */
    private Long taskId;

    /** 任务编号 */
    @Excel(name = "任务编号")
    private Long taskNo;

    /** 任务名称 */
    @Excel(name = "任务名称")
    private String taskName;

    /** 创建用户ID */
    @Excel(name = "创建用户ID")
    private Long userId;

    /** 单位ID */
    private Long deptId;

    /** 创建人名称 */
    private String nickName;

    /** 单位名称 */
    private String deptName;

    /** 参训单位ID集合 */
    @Excel(name = "参训单位ID")
    private String deptIds;

    /** 单位组ID */
    private List<Long> deptIdsList;

    /** 参与人数 */
    @Excel(name = "参与人数")
    private Integer headcount;

    /** 终端类型 */
    @Excel(name = "终端类型")
    private Integer terminalType;

    /** 视频 */
    @Excel(name = "视频")
    private String url;

    /** 平均成绩 */
    @Excel(name = "平均成绩")
    private Integer grade;

    /** 任务模式 */
    @Excel(name = "任务模式")
    private Integer taskType;

    /** 开始状态：0未开始 */
    @Excel(name = "开始状态：0未开始")
    private Integer status;

    /** 任务状态*/
    private Integer taskStatus;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    /** 故障现象类型（1代表随机 2代表设置） */
    private String faultType;

    /** 开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;

    /** 提交时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "提交时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date submitTime;

    /** 移动方式 */
    @Excel(name = "移动方式")
    private Integer move;

    /** 交互方式 */
    @Excel(name = "交互方式")
    private Integer interacte;

    /** 天气类型 */
    @Excel(name = "天气类型")
    private Integer weather;

    /** 地形 */
    @Excel(name = "地形")
    private Integer terrain;

    /** 科目单位 */
    private Integer deptSubjectId;
    /** 科目节点 */
    private Integer nodeSubjectId;
    /** 科目设备类型 */
    private Integer deviceSubjectId;
    /** 科目设备 */
    private Integer facilitySubjectId;
    /** 科目设备故障 */
    private Integer faultSubjectId;
    /** 科目背包 */
    private Integer backpack;

    /** 地物设置 */
    private List<SysTaskProp> propNumOptions;
    /** 地物设置 */
    private String propNumStr;

    /** 故障现象 */
    private String causeStr;

    /** 时长 */
    private String durationTime;

    /**工作模式**/
    private Integer pattern;

    /** 任务难度1简单2普通3困难 */
    private Integer taskDifficulty;

    /** 任务类型,1:协同训练2:特情处理3故障研究4专项演练 */
    private Integer taskClass;

    public Integer getTaskDifficulty() {
        return taskDifficulty;
    }

    public void setTaskDifficulty(Integer taskDifficulty) {
        this.taskDifficulty = taskDifficulty;
    }

    public Integer getTaskClass() {
        return taskClass;
    }

    public void setTaskClass(Integer taskClass) {
        this.taskClass = taskClass;
    }

    public String getDurationTime() {
        return durationTime;
    }

    public void setDurationTime(String durationTime) {
        this.durationTime = durationTime;
    }

    public Integer getDeptSubjectId() {
        return deptSubjectId;
    }

    public void setDeptSubjectId(Integer deptSubjectId) {
        this.deptSubjectId = deptSubjectId;
    }

    public Integer getNodeSubjectId() {
        return nodeSubjectId;
    }

    public void setNodeSubjectId(Integer nodeSubjectId) {
        this.nodeSubjectId = nodeSubjectId;
    }

    public Integer getDeviceSubjectId() {
        return deviceSubjectId;
    }

    public void setDeviceSubjectId(Integer deviceSubjectId) {
        this.deviceSubjectId = deviceSubjectId;
    }

    public Integer getFacilitySubjectId() {
        return facilitySubjectId;
    }

    public void setFacilitySubjectId(Integer facilitySubjectId) {
        this.facilitySubjectId = facilitySubjectId;
    }

    public Integer getFaultSubjectId() {
        return faultSubjectId;
    }

    public void setFaultSubjectId(Integer faultSubjectId) {
        this.faultSubjectId = faultSubjectId;
    }

    public Integer getBackpack() {
        return backpack;
    }

    public void setBackpack(Integer backpack) {
        this.backpack = backpack;
    }

    public List<SysTaskProp> getPropNumOptions() {
        return propNumOptions;
    }

    public void setPropNumOptions(List<SysTaskProp> propNumOptions) {
        this.propNumOptions = propNumOptions;
    }

    public String getPropNumStr() {
        return propNumStr;
    }

    public void setPropNumStr(String propNumStr) {
        this.propNumStr = propNumStr;
    }

    public void setTaskId(Long taskId)
    {
        this.taskId = taskId;
    }

    public Long getTaskId() 
    {
        return taskId;
    }
    public void setTaskNo(Long taskNo) 
    {
        this.taskNo = taskNo;
    }

    public Long getTaskNo() 
    {
        return taskNo;
    }
    public void setTaskName(String taskName) 
    {
        this.taskName = taskName;
    }

    public String getTaskName() 
    {
        return taskName;
    }
    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }
    public void setDeptIds(String deptIds) 
    {
        this.deptIds = deptIds;
    }

    public String getDeptIds() 
    {
        return deptIds;
    }
    public void setHeadcount(Integer headcount) 
    {
        this.headcount = headcount;
    }

    public Integer getHeadcount() 
    {
        return headcount;
    }
    public void setTerminalType(Integer terminalType) 
    {
        this.terminalType = terminalType;
    }

    public Integer getTerminalType() 
    {
        return terminalType;
    }
    public void setUrl(String url) 
    {
        this.url = url;
    }

    public String getUrl() 
    {
        return url;
    }
    public void setGrade(Integer grade) 
    {
        this.grade = grade;
    }

    public Integer getGrade() 
    {
        return grade;
    }
    public void setTaskType(Integer taskType) 
    {
        this.taskType = taskType;
    }

    public Integer getTaskType() 
    {
        return taskType;
    }
    public void setStatus(Integer status) 
    {
        this.status = status;
    }

    public Integer getTaskStatus() {
        return taskStatus;
    }

    public void setTaskStatus(Integer taskStatus) {
        this.taskStatus = taskStatus;
    }

    public Long getDeptId() {
        return deptId;
    }

    public void setDeptId(Long deptId) {
        this.deptId = deptId;
    }

    public String getNickName() {
        return nickName;
    }

    public void setNickName(String nickName) {
        this.nickName = nickName;
    }

    public List<Long> getDeptIdsList() {
        return deptIdsList;
    }

    public void setDeptIdsList(List<Long> deptIdsList) {
        this.deptIdsList = deptIdsList;
    }

    public String getDeptName() {
        return deptName;
    }

    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }

    public Integer getStatus()
    {
        return status;
    }
    public void setDelFlag(String delFlag) 
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag() 
    {
        return delFlag;
    }
    public void setStartTime(Date startTime) 
    {
        this.startTime = startTime;
    }

    public Date getStartTime() 
    {
        return startTime;
    }
    public void setSubmitTime(Date submitTime) 
    {
        this.submitTime = submitTime;
    }

    public Date getSubmitTime() 
    {
        return submitTime;
    }
    public void setMove(Integer move) 
    {
        this.move = move;
    }

    public Integer getMove() 
    {
        return move;
    }
    public void setInteracte(Integer interacte) 
    {
        this.interacte = interacte;
    }

    public Integer getInteracte() 
    {
        return interacte;
    }
    public void setWeather(Integer weather) 
    {
        this.weather = weather;
    }

    public Integer getWeather() 
    {
        return weather;
    }
    public void setTerrain(Integer terrain) 
    {
        this.terrain = terrain;
    }

    public Integer getTerrain() 
    {
        return terrain;
    }

    public Integer getPattern() {
        return pattern;
    }

    public void setPattern(Integer pattern) {
        this.pattern = pattern;
    }

    public String getCauseStr() {
        return causeStr;
    }

    public void setCauseStr(String causeStr) {
        this.causeStr = causeStr;
    }

    public String getFaultType() {
        return faultType;
    }

    public void setFaultType(String faultType) {
        this.faultType = faultType;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("taskId", getTaskId())
            .append("taskNo", getTaskNo())
            .append("taskName", getTaskName())
            .append("userId", getUserId())
            .append("deptIds", getDeptIds())
            .append("headcount", getHeadcount())
            .append("terminalType", getTerminalType())
            .append("url", getUrl())
            .append("grade", getGrade())
            .append("taskType", getTaskType())
            .append("status", getStatus())
            .append("delFlag", getDelFlag())
            .append("remark", getRemark())
            .append("startTime", getStartTime())
            .append("submitTime", getSubmitTime())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("move", getMove())
            .append("interacte", getInteracte())
            .append("weather", getWeather())
            .append("terrain", getTerrain())
            .toString();
    }
}
